﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Zocono.WCS.Domain.EntityInfo;
using Zocono.WCS.Infrastructure.ApllicationDto.WCSTaskDto;
using Zocono.WCS.Infrastructure.ApllicationDto;

namespace Zocono.WCS.Domain.RouteDomain
{
    public interface IRouteInfoService : IDomainService
    {
        Task<PageDto<RouteInfo>> GetPagedRouteInfoAsync(QueryRouteInfoDto queryRouteInto);
        Task<bool> CreateRouteInfoAsync(RouteInfo routeInfo);
        Task<bool> ModifyRouteInfoAsync(RouteInfo routeInfo);
        Task<bool> DeleteRouteInfoAsync(List<RouteInfo> routeInfoList);

        Task<List<RouteInfo>> GetRouteInfoListAsync();
        Task<RouteInfo> GetRouteInfoByIdAsync(long id);
        Task<bool> DeleteRouteInfoByIdAsync(long id);

        /// <summary>
        /// 通过起始工位号获取路径信息
        /// </summary>
        /// <param name="fromStation">起始工位</param>
        /// <param name="toStation">目标工位</param>
        /// <returns></returns>
        Task<RouteInfo> GetRouteInfoByFromAndToAsync(string fromStation, string toStation);

        Task<List<RouteInfo>> GetRouteInfoListFromRedisAsync();
    }
}
